//package io.github.lee.jel.views.video
//
//import android.content.Context
//import android.util.AttributeSet
//import android.util.Log
//import android.view.Gravity
//import android.view.SurfaceView
//import android.widget.FrameLayout
//import tv.danmaku.ijk.media.player.IMediaPlayer
//import tv.danmaku.ijk.media.player.IMediaPlayer.OnPreparedListener
//import tv.danmaku.ijk.media.player.IjkMediaPlayer
//
//private const val TAG = "VideoPlayerView"
//
//class VideoPlayerView : FrameLayout {
//
//    private lateinit var surfaceView: SurfaceView
//    private var url: String? = ""
//    private var mediaPlayer: IjkMediaPlayer? = null
//
//
//    constructor(context: Context) : this(context, null)
//    constructor(context: Context, attrs: AttributeSet?) : this(context, attrs, 0)
//    constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : this(
//        context,
//        attrs,
//        defStyleAttr, 0
//    )
//
//    constructor(
//        context: Context,
//        attrs: AttributeSet?,
//        defStyleAttr: Int,
//        defStyleRes: Int
//    ) : super(context, attrs, defStyleAttr, defStyleRes) {
//        init(context)
//    }
//
//    //==
//
//    private fun init(context: Context?) {
//        surfaceView = SurfaceView(context)
//        surfaceView.holder.addCallback(SurfaceCallback())
//        val params = LayoutParams(
//            LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, Gravity.CENTER
//        )
//        this.addView(surfaceView, params)
//
//    }
//
//    //===
//
//    fun setDataSource(url: String?) {
//        this.url = url
//    }
//
//    fun start() {
//        resetMediaPlayer()
//        mediaPlayer = IjkMediaPlayer()
//        //开启硬解码
//        mediaPlayer?.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec", 1);
//        if (url.isNullOrEmpty()) {
//            Log.e(TAG, "The data source is empty or null, Please setDataSource()")
//            return
//        }
//        mediaPlayer?.dataSource = url
//        mediaPlayer?.setDisplay(surfaceView.holder)
//
//        mediaPlayer?.setOnPreparedListener(object : OnPreparedListener {
//            override fun onPrepared(mp: IMediaPlayer?) {
//                mp?.start()
//            }
//        })
//        mediaPlayer?.setOnSeekCompleteListener {
//
//        }
//        mediaPlayer?.prepareAsync()
//
//    }
//
//    private fun resetMediaPlayer() {
//        mediaPlayer?.stop()
//        mediaPlayer?.setDisplay(null)
//        mediaPlayer?.release()
//    }
//
//    fun reset() {
//        mediaPlayer?.reset()
//    }
//
//    fun release() {
//        resetMediaPlayer()
//    }
//
//    fun resume() {
//        mediaPlayer?.start()
//    }
//
//    fun pause() {
//        mediaPlayer?.pause()
//    }
//
//    fun stop() {
//        mediaPlayer?.stop()
//    }
//
//    val duration: Long
//        get() = mediaPlayer?.duration ?: 0
//
//    val currentPosition: Long
//        get() = mediaPlayer?.currentPosition ?: 0
//
//    fun seekTo(sec: Long) {
//        mediaPlayer?.seekTo(sec)
//    }
//}